#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const int N=100005,M=998244353;
const ll inf=100000000000000000ll;
const ld PI=3.141592653589793238;
int n,a[11][N],m,k;
long long dp[11][N][12];
long long dfs(int i,int j,int l){
if(i>n)
return dfs(1,j+1,max(l,j-k+2));
if(j>m)
return 0;
if(dp[i][j][j-l+1]!=-1)
return dp[i][j][j-l+1];
if(l<=j&&l<=m-k+1)
return dp[i][j][j-l+1]=max({dp[i][j][j-l+1],dfs(i+1,j,l+1)+a[i][j],dfs(i+1,j,l)});
else
return dp[i][j][j-l+1]=dfs(i+1,j,l);
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
scanf("%d %d %d",&n,&m,&k);
memset(dp,-1,sizeof(dp));
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
scanf("%d",&a[i][j]);
cout<<dfs(1,1,1);
}
832A - Sasha and Sticks | 292B - Network Topology |
1339A - Filling Diamonds | 910A - The Way to Home |
617A - Elephant | 48A - Rock-paper-scissors |
294A - Shaass and Oskols | 1213A - Chips Moving |
490A - Team Olympiad | 233A - Perfect Permutation |
1360A - Minimal Square | 467A - George and Accommodation |
893C - Rumor | 227B - Effective Approach |
1534B - Histogram Ugliness | 1611B - Team Composition Programmers and Mathematicians |
110A - Nearly Lucky Number | 1220B - Multiplication Table |
1644A - Doors and Keys | 1644B - Anti-Fibonacci Permutation |
1610A - Anti Light's Cell Guessing | 349B - Color the Fence |
144A - Arrival of the General | 1106A - Lunar New Year and Cross Counting |
58A - Chat room | 230A - Dragons |
200B - Drinks | 13A - Numbers |
129A - Cookies | 1367B - Even Array |